selection: Remove #ifdef WAYLAND
authorBenjamin Otte <otte@redhat.com>
Tue, 14 Nov 2017 02:56:35 +0000 (03:56 +0100)
committerBenjamin Otte <otte@redhat.com>
Wed, 15 Nov 2017 18:07:16 +0000 (19:07 +0100)
Instead, turn the functions into backend API:
  gdk_broadway_display_add_selection_targets()
  gdk_broadway_display_clear_selection_targets()
Remove the old per-backend functions, too.

21 files changed:
gdk/broadway/gdkdisplay-broadway.c
gdk/broadway/gdkprivate-broadway.h
gdk/broadway/gdkselection-broadway.c
gdk/gdkdisplayprivate.h
gdk/gdkselection.c
gdk/gdkselection.h
gdk/quartz/gdkdisplay-quartz.c
gdk/wayland/gdkdisplay-wayland.c
gdk/wayland/gdkprivate-wayland.h
gdk/wayland/gdkselection-wayland.c
gdk/wayland/gdkwayland.h
gdk/wayland/gdkwaylandselection.h [deleted file]
gdk/wayland/meson.build
gdk/win32/gdkdisplay-win32.c
gdk/win32/gdkprivate-win32.h
gdk/win32/gdkselection-win32.c
gdk/win32/gdkwin32misc.h
gdk/x11/gdkdisplay-x11.c
gdk/x11/gdkprivate-x11.h
gdk/x11/gdkselection-x11.c
gtk/gtkselection.c

index bac7a979bc4ae0efc7576aefb46422bf43067ae9..2b69bc8270fb893eba8346ecd296e3bf7b6d7f32 100644 (file)
@@ -357,6 +357,8 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class)
   display_class->set_selection_owner = _gdk_broadway_display_set_selection_owner;
   display_class->send_selection_notify = _gdk_broadway_display_send_selection_notify;
   display_class->get_selection_property = _gdk_broadway_display_get_selection_property;
+  display_class->clear_selection_targets = gdk_broadway_display_clear_selection_targets;
+  display_class->add_selection_targets = gdk_broadway_display_add_selection_targets;
   display_class->convert_selection = _gdk_broadway_display_convert_selection;
   display_class->text_property_to_utf8_list = _gdk_broadway_display_text_property_to_utf8_list;
   display_class->utf8_to_string_target = _gdk_broadway_display_utf8_to_string_target;
index 4b1ee656ad73fb6ce9431159ba9123014b250cb9..8a82d472f413ad0a1435f456de7c011734308018 100644 (file)
@@ -130,6 +130,13 @@ gint _gdk_broadway_display_get_selection_property (GdkDisplay *display,
                                                   guchar    **data,
                                                   GdkAtom    *ret_type,
                                                   gint       *ret_format);
+void gdk_broadway_display_clear_selection_targets (GdkDisplay  *display,
+                                                   GdkAtom      selection);
+void gdk_broadway_display_add_selection_targets (GdkDisplay  *display,
+                                                 GdkWindow   *window,
+                                                 GdkAtom      selection,
+                                                 GdkAtom     *targets,
+                                                 guint        ntargets);
 void _gdk_broadway_display_send_selection_notify (GdkDisplay       *display,
                                                  GdkWindow       *requestor,
                                                  GdkAtom          selection,
index b62e11ef16b203f1cb9c0bcacc2439a09d702f59..1f3813bc239eb1aaa79931f39b64d1182d8a9c62 100644 (file)
@@ -158,6 +158,21 @@ _gdk_broadway_display_get_selection_property (GdkDisplay *display,
   return 0;
 }
 
+void
+gdk_broadway_display_clear_selection_targets (GdkDisplay *display,
+                                              GdkAtom     selection)
+{
+}
+
+void
+gdk_broadway_display_add_selection_targets (GdkDisplay  *display,
+                                            GdkWindow   *window,
+                                            GdkAtom      selection,
+                                            GdkAtom     *targets,
+                                            guint        ntargets)
+{
+}
+
 void
 _gdk_broadway_display_send_selection_notify (GdkDisplay      *display,
                                             GdkWindow       *requestor,
index 493f73065565f855151ebf4cb6db13d2b45565e8..96f281404118dfb3d2d4aa1121a80067976acbd1 100644 (file)
@@ -186,6 +186,13 @@ struct _GdkDisplayClass
                                                         guchar     **data,
                                                         GdkAtom     *type,
                                                         gint        *format);
+  void                       (*clear_selection_targets)(GdkDisplay  *display,
+                                                        GdkAtom      selection);
+  void                       (*add_selection_targets)  (GdkDisplay  *display,
+                                                        GdkWindow   *window,
+                                                        GdkAtom      selection,
+                                                        GdkAtom     *targets,
+                                                        guint        ntargets);
   void                       (*convert_selection)      (GdkDisplay  *display,
                                                         GdkWindow   *requestor,
                                                         GdkAtom      selection,
index 302a76a2bd12a1be55cc7e3c6939b9a3de28dc00..9eb60f57f87af5c1fe44b41b71d20129ee3d0db8 100644 (file)
@@ -329,3 +329,24 @@ gdk_utf8_to_string_target (const gchar *str)
 
   return GDK_DISPLAY_GET_CLASS (display)->utf8_to_string_target (display, str);
 }
+
+void
+gdk_selection_clear_targets (GdkDisplay *display,
+                             GdkAtom     selection)
+{
+}
+
+void
+gdk_selection_add_targets (GdkWindow *window,
+                           GdkAtom    selection,
+                           GdkAtom   *targets,
+                           guint      n_targets)
+{
+  GdkDisplay *display;
+
+  g_return_if_fail (GDK_IS_WINDOW (window));
+
+  display = gdk_window_get_display (window);
+
+  GDK_DISPLAY_GET_CLASS (display)->add_selection_targets (display, window, selection, targets, n_targets);
+}
index 396982508b95b15a63ad73a9f2953c19ffbdccad..54858f5f17a08e84ebb637a334d303b025479bf5 100644 (file)
@@ -209,6 +209,16 @@ void       gdk_selection_send_notify_for_display (GdkDisplay      *display,
                                                  GdkAtom          property,
                                                  guint32          time_);
 
+GDK_AVAILABLE_IN_3_94
+void       gdk_selection_clear_targets           (GdkDisplay      *display,
+                                                  GdkAtom          selection);
+
+GDK_AVAILABLE_IN_3_94
+void       gdk_selection_add_targets             (GdkWindow       *window,
+                                                  GdkAtom          selection,
+                                                  GdkAtom         *targets,
+                                                  guint            n_targets);
+
 G_END_DECLS
 
 #endif /* __GDK_SELECTION_H__ */
index 07d55b8b9c13b4c0143b7ffa9214f9780e1aff9a..206a84afafd012c2f8f6dca1f5235a89896d3d6f 100644 (file)
@@ -280,6 +280,8 @@ gdk_quartz_display_class_init (GdkQuartzDisplayClass *class)
   display_class->get_selection_owner = _gdk_quartz_display_get_selection_owner;
   display_class->set_selection_owner = _gdk_quartz_display_set_selection_owner;
   display_class->get_selection_property = _gdk_quartz_display_get_selection_property;
+  display_class->clear_selection_targets = gdk_quartz_display_clear_selection_targets;
+  display_class->add_selection_targets = gdk_quartz_display_add_selection_targets;
   display_class->convert_selection = _gdk_quartz_display_convert_selection;
   display_class->text_property_to_utf8_list = _gdk_quartz_display_text_property_to_utf8_list;
   display_class->utf8_to_string_target = _gdk_quartz_display_utf8_to_string_target;
index f74dd2ad791e9ebcbd40ce042885e62095eb997e..d8dc8cb305f22b09d9f3aaa8710849d6750ce714 100644 (file)
@@ -1043,6 +1043,8 @@ gdk_wayland_display_class_init (GdkWaylandDisplayClass *class)
   display_class->set_selection_owner = _gdk_wayland_display_set_selection_owner;
   display_class->send_selection_notify = _gdk_wayland_display_send_selection_notify;
   display_class->get_selection_property = _gdk_wayland_display_get_selection_property;
+  display_class->clear_selection_targets = gdk_wayland_display_clear_selection_targets;
+  display_class->add_selection_targets = gdk_wayland_display_add_selection_targets;
   display_class->convert_selection = _gdk_wayland_display_convert_selection;
   display_class->text_property_to_utf8_list = _gdk_wayland_display_text_property_to_utf8_list;
   display_class->utf8_to_string_target = _gdk_wayland_display_utf8_to_string_target;
index 64ea4e0d9eaded116f5b3d89c16b7d68f664cb2f..055597eb5c0513c6bc6af7035cae8b76f870ee17 100644 (file)
@@ -149,6 +149,13 @@ gint       _gdk_wayland_display_get_selection_property (GdkDisplay  *display,
                                                        guchar     **data,
                                                        GdkAtom     *ret_type,
                                                        gint        *ret_format);
+void       gdk_wayland_display_clear_selection_targets (GdkDisplay  *display,
+                                                        GdkAtom      selection);
+void       gdk_wayland_display_add_selection_targets   (GdkDisplay  *display,
+                                                        GdkWindow   *window,
+                                                        GdkAtom      selection,
+                                                        GdkAtom     *targets,
+                                                        guint        ntargets);
 void       _gdk_wayland_display_convert_selection (GdkDisplay *display,
                                                   GdkWindow  *requestor,
                                                   GdkAtom     selection,
index b98caa8ddfc23a3a6445a57bb252681cb891dae3..b60a99ab1f2c4017131fed7a4810723798ec1c5b 100644 (file)
@@ -966,7 +966,7 @@ data_source_dnd_finished (void                  *data,
 
   g_signal_emit_by_name (context, "dnd-finished");
   gdk_selection_owner_set (NULL, atoms[ATOM_DND], GDK_CURRENT_TIME, TRUE);
-  gdk_wayland_selection_clear_targets (display, atoms[ATOM_DND]);
+  gdk_wayland_display_clear_selection_targets (display, atoms[ATOM_DND]);
 }
 
 static void
@@ -1486,12 +1486,12 @@ _gdk_wayland_display_utf8_to_string_target (GdkDisplay  *display,
 }
 
 void
-gdk_wayland_selection_add_targets (GdkWindow *window,
-                                   GdkAtom    selection,
-                                   guint      ntargets,
-                                   GdkAtom   *targets)
+gdk_wayland_display_add_selection_targets (GdkDisplay *display,
+                                           GdkWindow  *window,
+                                           GdkAtom     selection,
+                                           GdkAtom    *targets,
+                                           guint       ntargets)
 {
-  GdkDisplay *display = gdk_window_get_display (window);
   GdkWaylandSelection *wayland_selection = gdk_wayland_display_get_selection (display);
   gpointer data_source;
   guint i;
@@ -1532,8 +1532,8 @@ gdk_wayland_selection_add_targets (GdkWindow *window,
 }
 
 void
-gdk_wayland_selection_clear_targets (GdkDisplay *display,
-                                     GdkAtom     selection)
+gdk_wayland_display_clear_selection_targets (GdkDisplay *display,
+                                             GdkAtom     selection)
 {
   GdkWaylandSelection *wayland_selection = gdk_wayland_display_get_selection (display);
 
index 2b79295add742ed97b7f78a81659ffa03abe7380..14f25d1d1d433b45bd4372e14b7f33e1137f6edd 100644 (file)
@@ -32,7 +32,6 @@
 #include <gdk/wayland/gdkwaylanddevice.h>
 #include <gdk/wayland/gdkwaylanddisplay.h>
 #include <gdk/wayland/gdkwaylandmonitor.h>
-#include <gdk/wayland/gdkwaylandselection.h>
 #include <gdk/wayland/gdkwaylandwindow.h>
 #include <gdk/wayland/gdkwaylandglcontext.h>
 
diff --git a/gdk/wayland/gdkwaylandselection.h b/gdk/wayland/gdkwaylandselection.h
deleted file mode 100644 (file)
index f3b0f50..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
- */
-
-#ifndef __GDK_WAYLAND_SELECTION_H__
-#define __GDK_WAYLAND_SELECTION_H__
-
-#if !defined (__GDKWAYLAND_H_INSIDE__) && !defined (GDK_COMPILATION)
-#error "Only <gdk/gdkwayland.h> can be included directly."
-#endif
-
-#include <gdk/gdk.h>
-
-G_BEGIN_DECLS
-
-#if defined (GTK_COMPILATION) || defined (GDK_COMPILATION)
-#define gdk_wayland_selection_add_targets gdk_wayland_selection_add_targets_libgtk_only
-GDK_AVAILABLE_IN_ALL
-void
-gdk_wayland_selection_add_targets (GdkWindow *window,
-                                   GdkAtom    selection,
-                                   guint      ntargets,
-                                   GdkAtom   *targets);
-
-#define gdk_wayland_selection_clear_targets gdk_wayland_selection_clear_targets_libgtk_only
-GDK_AVAILABLE_IN_ALL
-void
-gdk_wayland_selection_clear_targets (GdkDisplay *display, GdkAtom selection);
-
-#endif
-
-G_END_DECLS
-
-#endif /* __GDK_WAYLAND_SELECTION_H__ */
index 0914301ad2e7a84874d5e79d533a5debec5e6307..434d290e76dc5b91ad02c499535b871d29c56979 100644 (file)
@@ -19,7 +19,6 @@ gdk_wayland_public_headers = files([
   'gdkwaylanddisplay.h',
   'gdkwaylandglcontext.h',
   'gdkwaylandmonitor.h',
-  'gdkwaylandselection.h',
   'gdkwaylandwindow.h'
 ])
 
index 04b2f778b7d984fd4921254bae47433d3b090fa2..bdcfa667bad9c489ea26e0b62b891596e36bebcd 100644 (file)
@@ -1268,6 +1268,8 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass)
   display_class->set_selection_owner = _gdk_win32_display_set_selection_owner;
   display_class->send_selection_notify = _gdk_win32_display_send_selection_notify;
   display_class->get_selection_property = _gdk_win32_display_get_selection_property;
+  display_class->clear_selection_targets = gdk_win32_display_clear_selection_targets;
+  display_class->add_selection_targets = gdk_win32_display_add_selection_targets;
   display_class->convert_selection = _gdk_win32_display_convert_selection;
   display_class->text_property_to_utf8_list = _gdk_win32_display_text_property_to_utf8_list;
   display_class->utf8_to_string_target = _gdk_win32_display_utf8_to_string_target;
index cb74e6679b32a6d57b724683ebffcd1ac358c91e..fd9b67ee1d9ab0f53ed191181fa38791ef622c21 100644 (file)
@@ -439,6 +439,13 @@ gint      _gdk_win32_display_get_selection_property (GdkDisplay *display,
                                                     guchar    **data,
                                                     GdkAtom    *ret_type,
                                                     gint       *ret_format);
+void      gdk_win32_display_clear_selection_targets (GdkDisplay *display,
+                                                     GdkAtom     selection);
+void      gdk_win32_display_add_selection_targets   (GdkDisplay *display,
+                                                     GdkWindow  *window,
+                                                     GdkAtom     selection,
+                                                     GdkAtom    *targets,
+                                                     guint       ntargets);
 void      _gdk_win32_display_convert_selection (GdkDisplay *display,
                                                GdkWindow *requestor,
                                                GdkAtom    selection,
index 131c0bf4367128767c8e5d8525bbe73b206e7ed5..9de722691fa3fdf4a524bfcccebf953e4bf8b0b3 100644 (file)
@@ -1134,6 +1134,12 @@ gdk_free_compound_text (guchar *ctext)
   g_return_if_fail (ctext == NULL);
 }
 
+void
+gdk_win32_display_clear_selection_targets (GdkDisplay *display,
+                                           GdkAtom     selection)
+{
+}
+
 /* This function is called from gtk_selection_add_target() and
  * gtk_selection_add_targets() in gtkselection.c. It is this function
  * that takes care of setting those clipboard formats for which we use
@@ -1142,10 +1148,11 @@ gdk_free_compound_text (guchar *ctext)
  */
 
 void
-gdk_win32_selection_add_targets (GdkWindow  *owner,
-                                GdkAtom     selection,
-                                gint        n_targets,
-                                GdkAtom    *targets)
+gdk_win32_display_add_selection_targets (GdkDisplay *display,
+                                         GdkWindow  *owner,
+                                         GdkAtom     selection,
+                                         GdkAtom    *targets,
+                                         guint       ntargets)
 {
   HWND hwnd = NULL;
   gboolean has_image = FALSE;
index dadb4e23e11e57ab2ecf520d0a3365bcc9faf64f..1bc11f5164d8f216c00476ad41537c79c377814f 100644 (file)
@@ -81,12 +81,6 @@ gpointer      gdk_win32_handle_table_lookup (HWND handle);
 GDK_AVAILABLE_IN_ALL
 HGDIOBJ       gdk_win32_window_get_handle (GdkWindow *window);
 
-GDK_AVAILABLE_IN_ALL
-void          gdk_win32_selection_add_targets (GdkWindow  *owner,
-                                              GdkAtom     selection,
-                                              gint        n_targets,
-                                              GdkAtom    *targets);
-
 GDK_AVAILABLE_IN_ALL
 GdkWindow *   gdk_win32_window_foreign_new_for_display (GdkDisplay *display,
                                                         HWND        anid);
index 5a560d6311a1f2099f3cff40c699da5f784d45b1..c89753a8510ca4dc021517ffb3eeaf7351f77363 100644 (file)
@@ -3193,6 +3193,8 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
   display_class->set_selection_owner = _gdk_x11_display_set_selection_owner;
   display_class->send_selection_notify = _gdk_x11_display_send_selection_notify;
   display_class->get_selection_property = _gdk_x11_display_get_selection_property;
+  display_class->clear_selection_targets = gdk_x11_display_clear_selection_targets;
+  display_class->add_selection_targets = gdk_x11_display_add_selection_targets;
   display_class->convert_selection = _gdk_x11_display_convert_selection;
   display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list;
   display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target;
index ab43c39b2f1760c46bc12c4aac760b3880f4a44a..0cc8d36dada17a5cc890c8a5edd0d37a06b62a66 100644 (file)
@@ -171,6 +171,13 @@ gint        _gdk_x11_display_get_selection_property (GdkDisplay     *display,
                                                      guchar        **data,
                                                      GdkAtom        *ret_type,
                                                      gint           *ret_format);
+void        gdk_x11_display_clear_selection_targets (GdkDisplay     *display,
+                                                     GdkAtom         selection);
+void        gdk_x11_display_add_selection_targets   (GdkDisplay     *display,
+                                                     GdkWindow      *window,
+                                                     GdkAtom         selection,
+                                                     GdkAtom        *targets,
+                                                     guint           ntargets);
 void        _gdk_x11_display_convert_selection      (GdkDisplay     *display,
                                                      GdkWindow      *requestor,
                                                      GdkAtom         selection,
index ede48170af7ab0a24cc3d6ce83ae1f9bec292183..fe977aef974f4daec8f01606d487e5f867949f69 100644 (file)
@@ -312,6 +312,21 @@ _gdk_x11_display_get_selection_property (GdkDisplay  *display,
   return 0;
 }
 
+void
+gdk_x11_display_clear_selection_targets (GdkDisplay *display,
+                                         GdkAtom     selection)
+{
+}
+
+void
+gdk_x11_display_add_selection_targets (GdkDisplay *display,
+                                       GdkWindow  *window,
+                                       GdkAtom     selection,
+                                       GdkAtom    *targets,
+                                       guint       ntargets)
+{
+}
+
 void
 _gdk_x11_display_send_selection_notify (GdkDisplay       *display,
                                         GdkWindow        *requestor,
index 611c09e677241ae3660ebdc6f9b84bc96e9530c1..2ab9dc7b4004e6cef001caf24f73a24010cd6429 100644 (file)
@@ -878,10 +878,7 @@ gtk_selection_clear_targets (GtkWidget *widget,
   g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (selection != GDK_NONE);
 
-#ifdef GDK_WINDOWING_WAYLAND
-  if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (widget)))
-    gdk_wayland_selection_clear_targets (gtk_widget_get_display (widget), selection);
-#endif
+  gdk_selection_clear_targets (gtk_widget_get_display (widget), selection);
 
   lists = g_object_get_data (G_OBJECT (widget), gtk_selection_handler_key);
   
@@ -927,13 +924,7 @@ gtk_selection_add_target (GtkWidget            *widget,
 
   list = gtk_selection_target_list_get (widget, selection);
   gtk_target_list_add (list, target, 0, info);
-#ifdef GDK_WINDOWING_WAYLAND
-  if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (widget)))
-    gdk_wayland_selection_add_targets (gtk_widget_get_window (widget), selection, 1, &target);
-#endif
-#ifdef GDK_WINDOWING_WIN32
-  gdk_win32_selection_add_targets (gtk_widget_get_window (widget), selection, 1, &target);
-#endif
+  gdk_selection_add_targets (gtk_widget_get_window (widget), selection, &target, 1);
 }
 
 /**
@@ -953,6 +944,8 @@ gtk_selection_add_targets (GtkWidget            *widget,
                           guint                 ntargets)
 {
   GtkTargetList *list;
+  GdkAtom *atoms = g_new (GdkAtom, ntargets);
+  guint i;
 
   g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (selection != GDK_NONE);
@@ -961,31 +954,11 @@ gtk_selection_add_targets (GtkWidget            *widget,
   list = gtk_selection_target_list_get (widget, selection);
   gtk_target_list_add_table (list, targets, ntargets);
 
-#ifdef GDK_WINDOWING_WAYLAND
-  if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (widget)))
-    {
-      GdkAtom *atoms = g_new (GdkAtom, ntargets);
-      guint i;
+  for (i = 0; i < ntargets; i++)
+    atoms[i] = gdk_atom_intern (targets[i].target, FALSE);
 
-      for (i = 0; i < ntargets; i++)
-        atoms[i] = gdk_atom_intern (targets[i].target, FALSE);
-
-      gdk_wayland_selection_add_targets (gtk_widget_get_window (widget), selection, ntargets, atoms);
-      g_free (atoms);
-    }
-#endif
-
-#ifdef GDK_WINDOWING_WIN32
-  {
-    int i;
-    GdkAtom *atoms = g_new (GdkAtom, ntargets);
-
-    for (i = 0; i < ntargets; ++i)
-      atoms[i] = gdk_atom_intern (targets[i].target, FALSE);
-    gdk_win32_selection_add_targets (gtk_widget_get_window (widget), selection, ntargets, atoms);
-    g_free (atoms);
-  }
-#endif
+  gdk_selection_add_targets (gtk_widget_get_window (widget), selection, atoms, ntargets);
+  g_free (atoms);
 }